package service;

import java.util.ArrayList;
import java.util.List;

import modelo.MozoDao;
import beans.MozoBean;
import beans.PerfilBean;
import entities.MozoEntity;
import entities.PerfilEntity;


public class MozoSrv {
	
	private static MozoSrv instancia = null;
	public static MozoSrv getInstancia() {
		if( instancia == null) {
			instancia = new MozoSrv();
		}
		return instancia;
	}

	public MozoBean entity2Bean(MozoEntity mozoEnt) {

		MozoBean mozo = new MozoBean();
		mozo.setLegajo(mozoEnt.getLegajo());
		mozo.setApellido(mozoEnt.getApellido());
		mozo.setComisionAcum(mozoEnt.getComisionAcum());
		mozo.setFechaIngreso(mozoEnt.getFechaIngreso());
		mozo.setNombre(mozoEnt.getNombre());
		mozo.setPorComision(mozoEnt.getPorComision());
		

		PerfilBean perfil = PerfilSrv.getInstancia().entity2Bean(mozoEnt.getPerfil());
		mozo.setPerfil(perfil);
		return mozo;
	}

	public MozoEntity bean2entity(MozoBean mozoBean) 
	{

		MozoEntity mozo = new MozoEntity();
		mozo.setApellido(mozoBean.getApellido());
		mozo.setComisionAcum(mozoBean.getComisionAcum());
		mozo.setFechaIngreso(mozoBean.getFechaIngreso());
		mozo.setLegajo(mozoBean.getLegajo());
		mozo.setNombre(mozoBean.getNombre());
		mozo.setPorComision(mozoBean.getPorComision());
		
		PerfilEntity perfil = PerfilSrv.getInstancia().bean2Entity(mozoBean.getPerfil());
		mozo.setPerfil(perfil);
		
		return mozo;
	}
	
	/**
	 * Obtiene una lista de todos los mozos
	 * @return
	 */
	public List<MozoBean> obtenerMozos() {
		List<MozoEntity> listaEntities = MozoDao.getInstancia().obtenerMozos();
		List<MozoBean> listaBeans = new ArrayList<MozoBean>();
		for (MozoEntity entity : listaEntities) {
			MozoBean bean = this.entity2Bean(entity);
			listaBeans.add(bean);
		}
		return listaBeans;
	}

	
	/**
	 * Obtiene los mozos asignados por sector.
	 * @param idSector
	 * @return
	 */
	public List<MozoBean> obtenerMozosPorSector(Integer idSector)
	{
		List<MozoEntity> mozosEntity = MozoDao.getInstancia().obtenerMozosPorSector(idSector);
		List<MozoBean> mozos = new ArrayList<MozoBean>();
		
		for (MozoEntity mozoEnt : mozosEntity) {
			
			MozoBean mozo = new MozoBean();
			mozo = MozoSrv.getInstancia().entity2Bean(mozoEnt);
			mozos.add(mozo);
		}
		
		return mozos;

	}

	public MozoBean obtenerMozo(Integer idMozo) {
		MozoEntity mozo = MozoDao.getInstancia().obtenerMozo(idMozo);
		MozoBean bean = MozoSrv.getInstancia().entity2Bean(mozo);
		return bean;
	}
	
}
